package cn.com.surker.production.service;

import cn.com.surker.system.entity.DataSourceInfo;

import java.util.Map;

/**
 * 生产报表service接口
 * @author luotao
 * @date 2021/10/20
 */
public interface IProductionReportService {

	/**
	 * 统计生产日报
	 * @param dsList
	 * @type 类型(0:日报1:月报2：年报)
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	void statisticsProduction(Integer type, String startTime, String endTime);

	/**
	 *
	 * @param ds				数据源
	 * @param dateType			日期类型
	 * @return
	 */
	Map<String, Object> concreteVolume(DataSourceInfo ds, Integer dateType, Integer isGroup, String startTime, String endTime);

	/**
	 * 定时任务统计出站点数据
	 */
	void threadData();

	/**
	 * 生产日报表
	 * @param ds
	 * @param isGroup
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Map<String, Object> dayDetail(Long dsId, Integer isGroup, String startTime, String endTime);

	/**
	 * 调度工作量统计
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Map<String, Object> dispatcherCensus(DataSourceInfo ds, String startTime, String endTime);

	/**
	 * 统计单方配比
	 * @param ds
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Map<String, Object> volumeRatio(DataSourceInfo ds, String startTime, String endTime);

	/**
	 *  材料消耗报表
	 * @param ds
	 * @param dateType
	 * @param isGroup
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Map<String, Object> consumeCensus(DataSourceInfo ds, Integer dateType, Integer isGroup, String startTime, String endTime);

	/**
	 *  料仓消耗数据
	 * @param ds
	 * @param dateType
	 * @param isGroup
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Map<String, Object> siloConsume(DataSourceInfo ds, Integer dateType, Integer isGroup, String startTime, String endTime);

	/**
	 * 计划方量
	 *
	 * @param isDetail			是否详情
	 * @param ds
	 * @param isGroup
	 * @param startTime
	 * @param endTime
	 * @param projectName
	 * @return
	 */
	Map<String, Object> planTask(boolean isDetail, DataSourceInfo ds, Integer isGroup, String startTime, String endTime, String projectName);
}
